/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

package engine.game.combat.ability.champion;

import engine.game.combat.ability.Ability;
import engine.game.combat.ability.filters.AdjacentEnemyFilter;
import engine.game.gfx.Screen;
import engine.resource.Resources;

/**
 *
 * @author Nathan T
 */
public class PowerAttack extends Ability {

    public static final String SPRITE_NAME = "POWER_ATTACK_ICON";
    
    public PowerAttack() {
        super("Power Attack", Resources.getSprite(SPRITE_NAME));
        this.requiresMobTarget = true;
        this.endsCombatTurn = true;
        this.animType = ABILITY_ANIM.ATTACK;
        this.startsCombat = true;
    }

    @Override
    public String costString() {
        return getStaminaCost() + " Stamina";
    }

    @Override
    public String effectString() {
        return "Strikes the target, dealing massive damage.";
    }
    
    @Override
    public int getStaminaCost() {
        return 10;
    }
    
    @Override
    public void activateEffect() {
        caster.setFacing(caster.getDirectionTowards(target));
        target.takeDamage(15);
    }

    @Override
    public Screen.ScreenSelectFilter getMobFilter() {
        return new AdjacentEnemyFilter();
    }

    @Override
    public Screen.ScreenSelectFilter getPointFilter() {
        return null;
    }
    
}
